package thread;

/**
 * 线程的优先级
 * 线程有10个优先级，分别用整数1-10表示。
 * 其中1是最低优先级，5是默认优先级，10是最高优先级
 *
 * 当线程调用start方法被纳入到线程调度器中统一管理后，线程只能被动分配时间片，不能主动索取。
 * 而调度器分配时间片的概率原则上是优先级高的线程获取时间片概率高。
 */
public class PriorityDemo {
    public static void main(String[] args) {
        Thread max = new Thread(){
            public void run() {
                for (int i = 0; i < 10000; i++) System.out.println("max");
            }
        };

        Thread min = new Thread(){
            public void run() {
                for (int i = 0; i < 10000; i++) System.out.println("min");
            }
        };

        Thread norm = new Thread(){
            public void run() {
                for (int i = 0; i < 10000; i++) System.out.println("norm");
            }
        };

        min.setPriority(Thread.MIN_PRIORITY);
        max.setPriority(Thread.MAX_PRIORITY);

        min.start();
        norm.start();
        max.start();
    }
}
